package cl.fcbarcelona.ejb.services;

import java.util.Date;

import javax.ejb.EJB;
import javax.ejb.Stateless;

import cl.fcbarcelona.customExceptions.BorrarContratoException;
import cl.fcbarcelona.model.dao.ContratoDAO;
import cl.fcbarcelona.model.dto.ContratoDTO;
/**
 * Session Bean implementation class ContratoService
 */
@Stateless
public class ContratoService implements ContratoServiceRemote {

	@EJB
	private ContratoDAO contratoDAO;
	
    public ContratoService() {
        // TODO Auto-generated constructor stub
    }
    
    @Override
    public Integer agregarContrato(Date fechaInicio, Date fechaExpiracion,Integer mensualidad){
    	ContratoDTO contratoDTO = new ContratoDTO();
    	contratoDTO.setFechaInicio(fechaInicio);
    	contratoDTO.setFechaExpiracion(fechaExpiracion);
    	contratoDTO.setMensualidad(mensualidad);
    	contratoDAO.agregar(contratoDTO);
    	return (int)contratoDTO.getId();
    }
    
    @Override
    public void modificarContrato(Integer idContrato, Date fechaInicio, Date fechaExpiracion,Integer mensualidad){
    	ContratoDTO contratoDTO = contratoDAO.findContratoById(idContrato.longValue());
    	if(fechaInicio!=null)
    		contratoDTO.setFechaInicio(fechaInicio);
    	if(fechaExpiracion!=null)
    		contratoDTO.setFechaExpiracion(fechaExpiracion);
    	if(mensualidad!=null)
    		contratoDTO.setMensualidad(mensualidad);
    	
    	contratoDAO.actualizar(contratoDTO);
    }
    @Override
    public void borrarContrato(Integer idContrato) throws BorrarContratoException{
    	BorrarContratoException bce =new BorrarContratoException();
    	ContratoDTO contratoDTO = contratoDAO.findContratoById(idContrato.longValue());
    	if(contratoDTO==null)
    		throw bce;
    	contratoDAO.eliminar(contratoDTO);
    }

}
